﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TestingIoCInWeb.Dominio.Vistas;
using TestingIoCInWeb.Dominio.Presentadores;
using IoC4Fun;
using System.Collections;
using TestingIoCInWeb.Dominio.Interfases;
using SimpleIoC.Dominio.Interfases;
using SimpleIoC.Dominio.Repositorio;
using TestingIoCInWeb.Dominio.Servicio;
using SimpleIoC.Dominio.Servicio;

namespace TestingIoCInWeb
{
    public partial class _Default : System.Web.UI.Page, IDefaultVista
    {
        private IDefaultPresentador _presentador;
        private readonly Container4Fun _myIoC = new Container4Fun();
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            _myIoC.Register<IDefaultVista, _Default>(null,this,PropertiesTypeCondition.DisposeAll);
            _myIoC.Register<IDefaultPresentador, DefaultPresentador>();
            _myIoC.Register<IClienteRepositorio, ClienteRepositorio>();
            _myIoC.Register<ILogger, AnotherLoggerServicio>(null,null,PropertiesTypeCondition.Search,InstanceTypeCondition.Share);
            _myIoC.Register<ILogger, LoggerWebServicio>("TestLogger");
            _myIoC.Register<ILogger, LoggerServicio>("PLogger");
            _myIoC.Register<IConfiguracionRepositorio, ConfiguracionRepositorio>();
            _presentador = _myIoC.Resolve<IDefaultPresentador>();
        }
        public event EventHandler VistaCargandose;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (VistaCargandose != null)
                VistaCargandose(sender, e);
        }

        public IEnumerable Clientes
        {
            set
            {
                CapturaClientes.DataSource = value;
                CapturaClientes.DataBind();
            }
        }
    }
}
